package cn.wen233.srpc.basic.serialize;

/**
 * 序列化器接口
 *
 * @author wenei
 * @date 2021-10-27 15:35
 */
public interface Serializer {

    /**
     * 将对象序列化成字节数组
     * @param obj 对象
     * @return 字节数组
     */
    byte[] serialize(Object obj);

    /**
     * 将字节数组反序列化成指定类型对象
     * @param bytes 字节数组
     * @param clazz Class
     * @param <T> 指定类型
     * @return 指定类型的对象
     */
    <T> T deserialize(byte[] bytes, Class<T> clazz);
}
